Conversation
vkutuev
left a comment
There was a problem hiding this comment.
В целом очень приличненько. Мне очень нравится отношение к коду (понятность, структурированность, документированность и т.д.)
Хотелось бы более хитрые сценарии для бенчмарков:
- мало, но очень больших изображений
- очень много мелких изображений
- что-то промежуточное
Но в целом гуд и зачтено (но замечание про error рекомендую поправить и больше так не делать)
| pthread_mutex_lock(&img_q->push_mutex); | ||
| pthread_cond_signal(&img_q->cond_not_full); | ||
| pthread_mutex_unlock(&img_q->push_mutex); |
There was a problem hiding this comment.
А тут точно нужно захватывать push_mutex? На стороне queue_push есть ограничивающее условие, которое компенсирует сигнал, который прошёл до вставания в ожидание на cond_not_full
| ``` | ||
| `Reader` читает изображение и помещает его во входную очередь (`Input Queue`) → `Worker` извлекает изображения из `Input Queue`, выполняет свертку, помещает результат в выходную очередь (`Output Queue`) → `Writer` извлекает результат из `Output Queue` и записывает в файл. | ||
|
|
||
| Тестирование проводилось на наборе из [9 изображений](input_queue_mode/), полученных применением различных фильтров к [`cat.bmp`](images/cat.bmp). Таким образом, все изображения имеют одинаковый размер - `5.9 MiB`, что позволяет минимизировать влияние объёма данных на результаты тестирования. Однако их содержимое различно, поэтому каждое изображение необходимо отдельно загружать в память и записывать результат обратно, в отличие от случая с полностью идентичными изображениями, когда можно было бы загрузить файл один раз и использовать его повторно. |
There was a problem hiding this comment.
Ну хоть бы директорию на полгига прогнать, а то масштабы какие-то детские
|
|
||
| Эксперимент охватывал следующие параметры: | ||
| 1) Конфигурации распределения потоков между ролями: (`readers`, `workers`, `writers`); | ||
| 2) Лимиты памяти : |
There was a problem hiding this comment.
А почему было принято решение ограничивать память, а не число изображений в очереди? Так мы можем не угадать и где-нибудь в середине мы неожиданно пропустим какие-то изображения
Реализована задача 3: